1. Field of the Invention
This invention relates to programmable, integrated circuit logic devices arranged in interrelating groups or cells of logic components and interconnectable by a user-programmable switch matrix.
2. Description of the Prior Art
Several integrated circuit packages containing a programmable chip, which permits alternative implementation of logic functions, are available. These integrated circuit packages include a plurality of pins, an architecture for interfacing the pins with the input and output leads of the circuit on the programmable chip, and another architecture for interfacing the pins and auxiliary circuits on the chip which are used to configure the programmable chip into a user selected circuit. Thus, these field programmable logic devices permit the user to program or modify the functions on an integrated circuit chip with readily available equipment so as to configure the logic function performed by the chip to that desired by the user. However, the prior art programmable logic arrays (PLAs), programmable logic devices (PLDs) and programmable gate arrays, impose constraints on the user in exchange for field programmability.
In programmable logic arrays, which are often employed for random logic networks, data routing, code converters, instruction decoders, state machines, and other functions, an array of logic AND gates and logic 0R gates is provided which can be programmed for a user specified function. Each output function (output signal) of a programmable logic array is the sum (OR gate output signal) of selected products (AND gate output signals) and each product (AND gate output signal) is the product of selected input signals. Programming is accomplished by providing a programmable array or matrix between the circuit input lines and the AND gate input lines and between the output lines of the AND gates and the input lines of the OR gates, respectively. The PLA is programmed by blowing or not blowing fusible links interconnecting the conductors of the arrays.
In another embodiment, the output lines from subgroups of AND gates of the PLA are non-programmably connected to the input lines of an OR gate. A programmable array logic (PAL) device such as this is disclosed in U. S. Pat. No. 4,124,899 and incorporated herein by reference. The PAL design affords a reduction in the size of the integrated circuit chip which allows an increase in production yields and a lowering of production costs over a conventional PLA.
To further enhance the flexibility of a PAL device or a PLA device, each output signal from the OR gate array is processed by a programmable means which lets the user select either a registered output signal or a combinatorial output signal. Further, the output signal can be configured as either an active high or an active low signal. An example of an output macrocell 10, used in the prior art on an output line 11 of either a PLA or a PAL circuit, is shown in FIG. 1. Output line 11 from a programmable logic circuit is connected to a D input terminal of register 12 as well as a first input line 13 of a programmable multiplexer 19. The Q output terminal of register 12 drives a second input line 14 of multiplexer 19. The output signal from multiplexer 19, which is determined by the state of fuse 20 on line 21, drives a first input terminal of an exclusive OR gate 25. The power supply voltage is provided through a resistor 31 to the input select line 21 of multiplexer 19 and to a first end of fuse 20. The second end of fuse 20 is grounded. Accordingly, if fuse 20 is left intact, a logical zero signal is applied to input select line 21. However, if fuse 20 is blown, the signal on the input select line 21 is a logical one. Therefore, multiplexer 19 couples either the signal on line 13 or the signal on line 14 to output line 26.
The output signal from exclusive OR gate 25 is determined by fuse 23. If fuse 23 is left intact, then a logical zero is supplied to the second input terminal of exclusive OR gate 25 and the signal on line 26 is not inverted by gate 25. Conversely, if fuse 23 is blown, a logical one is provided to the second input terminal of exclusive OR gate 25 and exclusive OR gate 25 inverts the signal on line 26. Line 27 is used to tristate exclusive OR gate 25.
Output macrocell 10 also has means to provide a feedback signal to a logic circuit on line 17 of programmable multiplexer 18. Programmable multiplexer 18 has a first input line 22 connected to output line 25 of Exclusive OR gate 25 and a second input line 15 connected to Q output terminal of register 12. The signal on input select line 16 of multiplexer 18 is controlled by fuse 20, as previously described for multiplexer 19. Multiplexer 18 has three signal sources: (1) an inverted registered output signal from register 12; (2) an input signal on pin 30; or, (3) a signal from exclusive OR gate 25. If the signal on line 27 tristates exclusive OR gate 25, then an input signal on pin 30 is passed over lines 29, 22 to the first input terminal of multiplexer 18. Alternatively, the output signal of exclusive OR gate 25 is passed over lines 28, 22 to the first input terminal of multiplexer 18. Output line 17 of multiplexer 18 thus provides either an inverted or uninverted registered feedback signal, an inverted or uninverted combinatorial feedback signal, or an input signal to the logic circuit to which output macrocell 10 is connected. Output macrocell 10 is discussed in further detail in U.S. Pat. No. 4,717,912, which is incorporated herein by reference.
A disadvantage of monolithic PAL circuits is that to increase the number of input lines to the programmable AND logic array requires increasing the array size in proportion to the number of input lines. Accordingly, the size of a PAL circuit is limited by both integrated circuit technology and the cost of producing such a circuit. Also, the fuses used to program a bipolar logic array can only be programmed once and so the logic array cannot be fully tested prior to programming by the user.
The functionality of a conventional PAL device is determined by the input/output capability, the number of registers and the distribution of products terms of the device. A conventional PAL device suitable for both wide gating combinational functions, such as address decoding, multiplexing and demultiplexing, and sequential functions such as wide state machines and shift-register type functions, requires both wide input capability, i.e., a number of input lines, and a reasonably large register capability. Increasing the input capability of a conventional monolithic
device results in a larger array size, as described previously, which in turn results in a larger silicon die, higher cost, slower performance, and ineffective array utilization.
Erasable programmable logic devices (EPLDs) overcome the one time programmability limitation of fused logic arrays and typically use a segmented structure to enhance performance. One prior art EPLD is shown as a block diagram in FIGS. 2A, 2B and 2C (FIG. 2). The device has forty-eight input/output (I/O) pins 40, twelve dedicated input pins 41, and four pins 42 which may be used either as clock input pins or additional dedicated input pins. The signal on each I/O pin 40 is either provided to a macrocell 43 as an input signal or generated by a macrocell 43 as an output signal. Macrocells 43 are divided into three general types, a general macrocell 43, a global macrocell 60, and an enhanced macrocell 61.
General macrocell 43, as illustrated in FIG. 4, provides an input signal from I/O pin 40 to local bus 44 and programmable AND array 46 through feedback select element 47. Alternatively, a signal generated from the eight product signals on lines 49a-49h from programmable AND array 46 by I/O architecture control cell 48 is passed through buffer 49 to I/O pin 40 and through feedback select element 47 to local bus 44 and programmable AND array 46. Thus, AND array 46 is provided with either local feedback or an input signal on pin 40, but not both. In addition, programmable AND array 46 receives (1) input signals from the macrocells on the local quadrant bus 44, (2) feedback signals from global bus 45 from macrocells 60A.sub.0 -60A.sub.3, 60B.sub.0 -60B.sub.3, 60C.sub.0 -60C.sub.3 and 60D.sub.0 -60D.sub.3, and (3) signals on the sixteen dedicated input pins 41, 42 as described previously. Local macrocell programmable AND array 46 is limited to eight product terms and I/O architecture control cell 48 provides a means for generating either combinatorial or registered output signals, as previously described.
A global macrocell 60 is shown in FIG. 3. The programmable AND array 46 of global macrocell 60 is identical to programmable AND array 46 of general macrocell 43. However, the input signals to programmable AND array 46 of global macrocell 60 include both the signal from I/O pin 40, which is provided directly to global bus 45, and the signal from I/O architecture control cell 48, which is provided to local bus 44. Enhanced macrocells 61 (not shown) are utilized for critical combinatorial logic delay paths since these cells have increased speed performance through the logic array.
In another EPLD (FIGS. 5A and 5B) a programmable logic array 50 is configured as two symmetrical parts 50A, 50B with each half having 14 macrocells 51, three I/O architecture control cells 53 and one buried macrocell 52. Buried macrocell 52 is similar to group I/O architecture control cells 51 except buried macrocell 52 is not connected to an I/O pin 40 and therefore is used only to interface two macrocells with a global bus and a local bus.
In this embodiment, a selected group of macrocells, 51h-51k, 51x-51aa can share a total of sixteen additional product terms from the logic array. However, the sharing must occur between adjacent pairs of macrocells so that the additional product terms are available only to one side of the device at a given time.
The electrical programmable logic devices are implemented using CMOS technology. Also, the EPLD technology permits factory testing of all elements within the EPLD, unlike a fuse blown programmable device which can only be tested for certain configurations in the factory. The programmable connections in an EPLD typically use a CMOS floating gate architecture that is erased using a short wavelength ultraviolet (UV) light.
While an EPLD offers advantages over fuse programmable devices, the UV EPLD can be inadvertently erased if the device is left in either sunlight or fluorescent lighting. Further, the number of programmable gates, the utilization of the components in the device, and the flexibility of the device are limited by the architecture of the device. Specifically, while the devices illustrated in FIGS. 2 and 3 utilize a segmented PAL approach, each of the PAL structures is relatively large. The size of the structure results in lower performance in comparison to a smaller structure and also inefficient utilization of the array. In larger arrays, if only one or two input lines of a particular product term are used or if only one or two product terms of a particular output macrocell are used, then the remaining input lines or the remaining product terms are essentially wasted or unused.
The EPLD in FIG. 2 has 48 registers in a 68-pin package and the EPLD in FIGS. 5A and 5B has 28 registers in a 40-pin package. Therefore, the number of registers in comparison to the number of package pins is limited and consequently the functionality of these devices for registered applications is limited. Hence, both the speed and the functionality of these EPLDs are compromised by the architecture of the devices.
An alternative to a monolithic or a segmented programmable logic array is a programmable gate array wherein configurable logic blocks 70, as shown in FIG. 6A, are interfaced through switch matrices, as shown in FIG. 6B. Each configurable logic block 70 has a combinatorial logic cell 73 with four input lines 70A, 70B, 70C, 70D and two output lines 70G, 70H, a clock input line 70K, a storage element 71, and several programmable multiplexers for signal routing within the logic block. Combinational logic cell 73 uses a table look-up memory to implement Boolean logic functions of up to four variables. The programmable multiplexers utilize volatile memory cells in conjunction with pass transistors to provide configuration signals for the multiplexer. Each switch matrix 72 interfaces four horizontal metal segments with five vertical metal segments. The switches in the switch matrices are pass transistors that are controlled by a configuration bit in a volatile memory cell.
The programmable gate array circuit provides 112 flip-flops in a 68-pin PLCC package and 174 flip-flops in an 84-pin PGA package. Thus, while these devices significantly increase the number of registers over the EPLDs, described above, the devices are inefficient for wide gating applications because each configurable logic block 73 is relatively small. Therefore, an application, which requires wide gating, requires cascading in series of multiple configurable logic blocks which in turn results in reduced performance.
The semiconductor industry is consistently driven to offer higher integration, higher speed silicon devices for increased performance, lower cost system applications. For a high density PAL-like device achieving higher speed is extremely critical. However, a high density PAL device which provides a high speed programmable array and a large register capability is presently unavailable. Further, as described above, the available prior art programmable logic devices fail to achieve an optimum balance of functionality, silicon die size and performance.